Page({
  data: {
    videoList: [],       // 视频列表数据
    isLoading: false,    // 是否正在加载
    noMoreData: false,   // 是否没有更多数据
    page: 1,             // 当前页码
    pageSize: 5,         // 每页加载数量
    currentPlayingIndex: -1, // 当前播放的视频索引
    apiUrl: "http://api.yujn.cn/api/ks_sj.php" // 视频接口地址
  },
  
  onLoad() {
    // 页面加载时获取初始视频数据
    this.loadVideos();
  },

  /**
   * 加载视频数据
   */
  loadVideos() {
    // 如果正在加载或没有更多数据，则返回
    if (this.data.isLoading || this.data.noMoreData) return;

    this.setData({ isLoading: true });

    // 构建请求参数，根据实际接口要求调整
    const params = {
      page: this.data.page,
      pagesize: this.data.pageSize
    };

    // 拼接请求URL
    const requestUrl = this.buildUrlWithParams(this.data.apiUrl, params);

    wx.request({
      url: requestUrl,
      method: 'GET',
      success: (res) => {
        this.handleVideoResponse(res.data);
      },
      fail: (err) => {
        console.error('视频数据请求失败:', err);
        wx.showToast({
          title: '加载失败，请重试',
          icon: 'none',
          duration: 2000
        });
        this.setData({ isLoading: false });
      }
    });
  },

  /**
   * 处理视频接口返回的数据
   */
  handleVideoResponse(data) {
    // 根据实际接口返回格式解析数据
    if (data && data.code === 200 && data.data && data.data.length > 0) {
      // 格式化视频数据，适配我们的页面
      const formattedVideos = data.data.map(video => ({
        video: video.video,  // 使用API返回的video字段作为视频播放地址
        cover: video.cover,  // 使用API返回的cover字段作为视频封面图
        title: video.title || '未知标题' // 视频标题
      }));

      // 将新视频添加到列表
      this.setData({
        videoList: [...this.data.videoList, ...formattedVideos],
        page: this.data.page + 1,
        isLoading: false,
        noMoreData: false // 假设接口始终有更多数据，可根据实际情况调整
      });
    } else {
      // 没有更多数据
      this.setData({
        isLoading: false,
        noMoreData: true
      });
    }
  },

  /**
   * 上拉加载更多视频
   */
  loadMoreVideos() {
    this.loadVideos();
  },

  /**
   * 处理视频播放事件
   */
  handleVideoPlay(e) {
    const index = e.currentTarget.dataset.index;
    
    // 暂停其他正在播放的视频
    if (this.data.currentPlayingIndex !== -1 && this.data.currentPlayingIndex !== index) {
      const prevVideoContext = wx.createVideoContext(`video-${this.data.currentPlayingIndex}`);
      prevVideoContext.pause();
    }
    
    // 更新当前播放索引
    this.setData({
      currentPlayingIndex: index
    });
  },

  /**
   * 处理视频播放结束事件
   */
  handleVideoEnd(e) {
    const index = e.currentTarget.dataset.index;
    this.setData({
      currentPlayingIndex: -1
    });
  },

  /**
   * 构建带参数的URL
   */
  buildUrlWithParams(url, params) {
    let urlWithParams = url;
    const paramArray = [];
    
    for (const key in params) {
      if (params.hasOwnProperty(key)) {
        paramArray.push(`${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`);
      }
    }
    
    if (paramArray.length > 0) {
      urlWithParams += (url.includes('?') ? '&' : '?') + paramArray.join('&');
    }
    
    return urlWithParams;
  }
});